<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="root"></div>
<script src="../../javascript/react.development.js"></script>
<script src="../../javascript/react-dom.development.js"></script>
<script src="../../javascript/babel.min.js"></script>
<script type="text/babel">
    /*
    * state 和 props 主要的区别在于 props 是不可变的，而 state 可以根据与用户交互来改变。这就是为什么有些组件需要定义state来更新和修改数据，而子组件只能通过props来传递数据
    * 组件的props是只读属性，不能直接对prop的值进行修改
    * */
    class Person extends React.Component {
        constructor(props, context) {
            super(props, context)
        }

        render() {
            // 从组件实例的props中解构赋值拿到外部传递过来的自定义属性prop
            const {name, age, sex} = this.props
            return (
                <div className="app">
                    <ul>
                        <li>姓名是：{name}</li>
                        <li>年龄是：{age}</li>
                        <li>性别是：{sex}</li>
                    </ul>
                </div>
            );
        }
    }

    // 给Person组件传递三个props分别是name、age、sex
    ReactDOM.render(<Person name="陶品奇" age="22" sex="男"></Person>, document.querySelector("#root"))
</script>
</body>
</html>